<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>计算指定日期是今年的第几天</title>
    <script>
        // 1.默认系统起始时间 Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间) 1970年1月1日8点
        // 2.前三行代码是为了得到当前年第一天 2019年1月1日8点距离1970年1月1日8点的毫秒数
        // 这里 var firstDay = +new Date(getYear.toString());等同于 var firstDay = +new Date(’2019‘);，获得的并不是到2019年1月1日0点 而是八点，可能和系统起始时间也算8点开始有关吧
        // 3.因为上面注意事项的原因。最后Times得到的时间差是1月1号8点至1月2号0点的差值，换算成天只有0.66666…天，所以用Math.ceil向上取整得到1天，有因为我的题目要求输入2019-1-2返回2天，所以我又+1
        // 以上原理就是算时间差，转换成天数，也就不用考虑是否为闰年了

        function getDayNum(time) {
            var thisDay = new Date(time);
            var getYear = thisDay.getFullYear();
            var firstDay = +new Date(getYear.toString());
            var thisDays = +new Date(thisDay);
            var times = (thisDays - firstDay) / 1000;
            var d = Math.ceil(times / 60 / 60 / 24) + 1;
            return d + '天';
        }
        console.log(getDayNum('2021-1-2'));
    </script>
</head>

<body>

</body>

</html>